package com.libbase.datarepository

interface DataRepositoryInterface {
    interface Builder {
        val id: String

        fun build(): DataRepositoryInterface?
    }

    val id: String

    var dataChangeCallBack: ((encodeData: Any?) -> Unit)?

    var itemChangeCallBack: ((encodeItem: Any?) -> Unit)?

    fun setEncodeData(data: Any?)

    fun getEncodeData(): Any?

    fun save() {}

    fun updateEncodeItem(item: Any) {
        TODO("Not yet implemented")
    }

    fun updateItemValue(itemId: String, key: String, value: Any?) {
        TODO("Not yet implemented")
    }

    fun addEncodeItem(item: Any) {
        TODO("Not yet implemented")
    }

    fun insertEncodeItem(item: Any) {
        TODO("Not yet implemented")
    }

    fun getEncodeItem(index: Int): Any? {
        TODO("Not yet implemented")
    }

    fun getEncodeItemById(itemId: String): Any? {
        TODO("Not yet implemented")
    }

    fun removeItemById(itemId: String) {
        TODO("Not yet implemented")
    }
}